package navigateur;

import java.net.URL;

import javax.swing.JEditorPane;
import javax.swing.JLabel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;

import elubrication.MumWindow;
import evenement.NavigateurListener;

import ihm.AbstractModule;
import ihm.BarreOutil;

public class Navigateur extends AbstractModule {

	public Navigateur(MumWindow parent) {
		super(parent);
	}

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	protected BarreOutil getBarreOutil() {
		
		BarreOutil barre_outil = new BarreOutil(getMainFrame());
		barre_outil.setMyActionListener(new NavigateurListener(getMainFrame()));
		
		barre_outil.add(barre_outil.makeButton("back.png", 
						"BACK", 
						"Retourne en arrière", 
						"BACK"));
		
		barre_outil.add(barre_outil.makeButton("forward.png",
						"FORWARD",
						"Continue la navigation",
						"FORWARD"));
		
		barre_outil.addSeparator();
		
		barre_outil.add(barre_outil.makeButton("refresh.png",
						"REFRESH",
						"Rafraichir la page",
						"REFRESH"));
		
		barre_outil.addSeparator();
		
		barre_outil.add(barre_outil.makeButton("history.png",
						"HISTORY",
						"Accéder à l'historique",
						"HISTORY"));
		
		barre_outil.add(barre_outil.makeButton("favorite.png",
						"FAVORITE",
						"Accéder aux favoris",
						"FAVORITE"));
		
		barre_outil.addSeparator();
		
		JTextField saisie = new JTextField("http://google.fr");
		saisie.setColumns(20);
		saisie.addActionListener(barre_outil.getMyActionListener());
		saisie.setActionCommand("SAISIE");
		barre_outil.add(saisie);

		return barre_outil;
	}
	
	protected JTabbedPane getCadrePrincipal() {
		JTabbedPane cadre_principal;
		cadre_principal = new JTabbedPane(SwingConstants.TOP);
		cadre_principal.addTab("Google", getNavigateur());
		return cadre_principal;
	}
	
	private JEditorPane getNavigateur() {
		
		final JEditorPane navigateur = new JEditorPane();
		navigateur.setEditable(false);
		try {
			navigateur.setPage(new URL("http://google.fr"));
			navigateur.addHyperlinkListener(new HyperlinkListener() {
				
				@Override
				public void hyperlinkUpdate(HyperlinkEvent e) {
					if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
						URL url = e.getURL();
						if(url == null) return;
						try {
							navigateur.setPage(url);
						} catch (Exception e1) {
							e1.printStackTrace();
						}
					}
					
				}
			});
		} catch (Exception e) {
			e.printStackTrace();
		}
		navigateur.add(new JLabel("Google"));
		return navigateur;
	}
}
